#include<stdio.h>
#include<math.h>
//#include<iostream>
//using namespace std;
double f(double  x,double  y,int  c)
{
   switch(c)
   {
      case 0:  return x+y;
      case 1:  return x-y;
      case 2:  return x*y;
      case 3:  return x/y;
   }
}

int main()
{
    int i,j,k;
    double a,b,c,d;
    double res1,res2,res3,res4,res5;
    scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
    char ch[5];
    ch[0]='+';ch[1]='-';ch[2]='*';ch[3]='/';
    for(i=0;i<4;i++)
      for(j=0;j<4;j++) 
        for(k=0;k<4;k++)
        {
           //case1
           res1=f(a,b,i);
           res2=f(res1,c,j);
           res3=f(res2,d,k);
           if(fabs(res3-24)<0.0001 ) printf("%.0f%c%.0f%c%.0f%c%.0f%c\n",a,ch[i],b,ch[j],c,ch[k],d);//
           res1=f(c,d,k);
           res2=f(b,res1,j);
           res3=f(a,res2,i);
           if( fabs(res3-24)<0.0001 ) printf("%.0f%c(%.0f%c(%.0f%c%.0f))\n",a,ch[i],b,ch[j],c,ch[k],d);
           //case3
           res1=f(a,b,i);
           res2=f(c,d,k);
           res3=f(res1,res2,j);
           if( fabs(res3-24)<0.0001 ) printf("(%.0f%c%.0f)%c(%.0f%c%.0f)\n",a,ch[i],b,ch[j],c,ch[k],d);
           //case4
           res1=f(b,c,j);
           res2=f(a,res1,i);
           res3=f(res2,d,k);
           if( fabs(res3-24)<0.0001) printf("(%.0f%c(%.0f%c%.0f))%c%.0f\n",a,ch[i],b,ch[j],c,ch[k],d);
           //case5
           res1=f(b,c,j);
           res2=f(res1,d,k);
           res3=f(a,res2,i);
           if( fabs(res3-24)<0.0001 ) printf("%.0f%c((%.0f%c%.0f)%c%.0f)\n",a,ch[i],b,ch[j],c,ch[k],d);
        }
    //system("pause");
    return 0;
}
        
